package cn.com.db.dao;

import cn.com.db.model.DiyOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

@Component
@Mapper
public interface DiyOrderDao {
    void createDiyOrder(DiyOrder order);

    DiyOrder getDiyOrderById(@Param("id") String id);

    List<DiyOrder> getDiyOrder(@Param("order")DiyOrder order,
                         @Param("start")Timestamp start,
                         @Param("end")Timestamp end,
                         @Param("rowStart")Integer rowStart,
                         @Param("pageSize")Integer pageSize);

    Integer countDiyOrder(@Param("order")DiyOrder order,
                       @Param("start")Timestamp start,
                       @Param("end")Timestamp end);

    Integer getDealPeopleNum(@Param("sellerId")String sellerId,
                             @Param("storeId")String storeId,
                             @Param("confirm")Integer confirm);

    Integer getDiyOrderNum(@Param("sellerId")String sellerId,
                        @Param("storeId")String storeId,
                        @Param("confirm")Integer confirm);

    BigDecimal getTurnover(@Param("sellerId")String sellerId,
                           @Param("storeId")String storeId,
                           @Param("confirm")Integer confirm);

    BigDecimal getTodayTurnover(@Param("sellerId")String sellerId,
                                @Param("storeId")String storeId,
                                @Param("todayStart")Timestamp todayStart,
                                @Param("todayEnd")Timestamp todayEnd,
                                @Param("confirm")Integer confirm);

    void updateDiyOrderStatus(@Param("id")String orderId,
                           @Param("status")Integer status);

    void cancel(@Param("id")String id);

    void confirm(@Param("id")String id,
                 @Param("status")Integer status);

	List<DiyOrder> getDiyOrders(@Param("list")List<String> idList);

}
